summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/LicenseAdapter.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/LicenseAdapter.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/LicenseAdapter.kt50
1 files changed, 17 insertions, 33 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/LicenseAdapter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/LicenseAdapter.kt
index bc6ff1364..38bb1f96f 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/LicenseAdapter.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/LicenseAdapter.kt
@@ -7,49 +7,33 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
-import androidx.recyclerview.widget.RecyclerView
-import androidx.recyclerview.widget.RecyclerView.ViewHolder
-import org.yuzu.yuzu_emu.YuzuApplication
import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding
import org.yuzu.yuzu_emu.fragments.LicenseBottomSheetDialogFragment
import org.yuzu.yuzu_emu.model.License
+import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder
-class LicenseAdapter(private val activity: AppCompatActivity, var licenses: List<License>) :
- RecyclerView.Adapter<LicenseAdapter.LicenseViewHolder>(),
- View.OnClickListener {
+class LicenseAdapter(private val activity: AppCompatActivity, licenses: List<License>) :
+ AbstractListAdapter<License, LicenseAdapter.LicenseViewHolder>(licenses) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): LicenseViewHolder {
- val binding =
- ListItemSettingBinding.inflate(LayoutInflater.from(parent.context), parent, false)
- binding.root.setOnClickListener(this)
- return LicenseViewHolder(binding)
+ ListItemSettingBinding.inflate(LayoutInflater.from(parent.context), parent, false)
+ .also { return LicenseViewHolder(it) }
}
- override fun getItemCount(): Int = licenses.size
+ inner class LicenseViewHolder(val binding: ListItemSettingBinding) :
+ AbstractViewHolder<License>(binding) {
+ override fun bind(model: License) {
+ binding.apply {
+ textSettingName.text = root.context.getString(model.titleId)
+ textSettingDescription.text = root.context.getString(model.descriptionId)
+ textSettingValue.visibility = View.GONE
- override fun onBindViewHolder(holder: LicenseViewHolder, position: Int) {
- holder.bind(licenses[position])
- }
-
- override fun onClick(view: View) {
- val license = (view.tag as LicenseViewHolder).license
- LicenseBottomSheetDialogFragment.newInstance(license)
- .show(activity.supportFragmentManager, LicenseBottomSheetDialogFragment.TAG)
- }
-
- inner class LicenseViewHolder(val binding: ListItemSettingBinding) : ViewHolder(binding.root) {
- lateinit var license: License
-
- init {
- itemView.tag = this
+ root.setOnClickListener { onClick(model) }
+ }
}
- fun bind(license: License) {
- this.license = license
-
- val context = YuzuApplication.appContext
- binding.textSettingName.text = context.getString(license.titleId)
- binding.textSettingDescription.text = context.getString(license.descriptionId)
- binding.textSettingValue.visibility = View.GONE
+ private fun onClick(license: License) {
+ LicenseBottomSheetDialogFragment.newInstance(license)
+ .show(activity.supportFragmentManager, LicenseBottomSheetDialogFragment.TAG)
}
}
}